package cn.digitalize.generate.modular.basic.entity;

import cn.digitalize.common.pojo.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * @author Created by ZhangCheng on 2023/06/09 (代码生成基础配置)
 */
@Data
@TableName("code_generate_basic")
public class CodeGenerateBasic extends BaseEntity {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 数据表名
     */
    @NotBlank(message = "数据表名不能为空！")
    @Size(max = 200, message = "数据表名长度不能超过200字符！")
    private String tableName;

    /**
     * 类名
     */
    @NotBlank(message = "类名不能为空！")
    @Size(max = 255, message = "类名长度不能超过255字符！")
    private String className;

    /**
     * 作者姓名
     */
    @NotBlank(message = "作者姓名不能为空！")
    @Size(max = 20, message = "作者姓名长度不能超过20字符！")
    private String authorName;

    /**
     * 是否移除表前缀
     */
    @NotNull(message = "是否移除表前缀不能为空！")
    private Boolean tablePrefix;

    /**
     * 包名称
     */
    @Size(max = 255, message = "包名称长度不能超过255字符！")
    private String packageName;

    /**
     * 模块名称
     */
    @Size(max = 255, message = "模块名称长度不能超过255字符！")
    private String moduleName;

    /**
     * 业务名
     */
    @Size(max = 255, message = "业务名长度不能超过255字符！")
    private String busName;

    /**
     * 功能名
     */
    @Size(max = 255, message = "功能名长度不能超过255字符！")
    private String tableComment;

    /**
     * 生成位置类型
     */
    @NotNull(message = "生成位置类型不能为空！")
    private Integer generateType;
}
